#ifndef _MOTIONOBSTACLECONVEXHULLISPLAY_H
#define _MOTIONOBSTACLECONVEXHULLISPLAY_H

#include <thread>
#include <mutex>
#include <chrono>
#include <vector>
#include <Eigen/Dense>

#include "module_base/util.h"

namespace obstacle_detector
{

class ConvexHullDisplay
{
public:
	ConvexHullDisplay();
	~ConvexHullDisplay();
	// void set_showinfo(const float* points, int point_num, int *cluster_label);
	void set_showinfo(const int16_t* points, int point_num);
	void set_showinfo(const float* points, int point_num);
	void set_extreme_points(const uint16_t *extreme_points, int point_num);
	void set_bbox(const float *bbox, int bbox_num,const module_base::Location &loc);

private:

	void debug_display();


private:
	int16_t *debug_points_;
	int debug_point_num_;

	float *debug_points_float_;
	int debug_points_num_float_;

	uint16_t *extreme_points_;
	int extreme_points_num_;

	std::vector<Eigen::MatrixXf> debug_bbox_;

	std::mutex data_mutex_;
	std::thread thread_;

};//class

}//namespace

#endif 